package com.shimao.celnet.payment.service;

import com.shimao.celnet.payment.form.PInvoiceBlueForm;
import com.shimao.celnet.payment.form.PInvoiceForm;
import com.shimao.celnet.payment.model.PInvoiceBlue;
import com.shimao.celnet.payment.model.PInvoiceBlueDetail;

import java.util.List;
import java.util.Map;

public interface PInvoiceBlueService extends IService<PInvoiceBlue> {
    /**
     * 最新的分页查询方法
     * @param formBean
     * @param pageNum
     * @param length
     * @return
     */
    PInvoiceBlueForm getByPage(PInvoiceBlueForm formBean, int pageNum, int length);
    /**
     *新增保存
     * @return
     */
    int save(PInvoiceBlue sBean, List<PInvoiceBlueDetail> pInvoiceBlueDetailList);

    /**
     * 通过开票guid，查询蓝票记录以及蓝票记录明细
     */
    Map<String,Object> getInfo(String invoiceGuid);

    /**
     * 通过开票guid，查询发票记录详情，发票明细
     * create by stan.ruan on 2018-01-04
     */
    PInvoiceForm getInvoiceForm(String invoiceGuid, String blueRedType);

    /**
     * 最近一个小时的蓝票推送失败记录
     * @return
     */
    List<PInvoiceBlue> invoiceList();

    /**
     * 查询所有已开有效的电子票
     *
     * @return
     */
    List<PInvoiceBlue> EinvoiceList();

    /**
     * 通过发票号查询guid
     *
     * @return
     */
    String getGuidByInvoiceNo(String invoiceNo);

    /**
     * 通过开票parent_guid和originalInvoiceNo，查询蓝票记录以及蓝票记录明细
     */
    Map<String,Object> getInfoRed(String blueReceiptGuid, String originalInvoiceNo);

    /**
     * 通过发票号查询发票
     */
    PInvoiceBlue getInvoiceByinvoiceNo(String invoiceNo);

    /**
     * 通过流水号查询发票
     */
    PInvoiceBlue getInvoiceBySerialNo(String serial_no);

    /**
     * 通过开票终端查询发票
     */
    PInvoiceBlue getInvoiceByInvoiceYerminalCode(String invoiceYerminalCode);
}
